/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 石方旭
 * Date: 2022-03-16
 * Time: 22:02
 */
public class TestDemo {
//    class Solution {
//        public ListNode oddEvenList(ListNode head) {
//            if(head==null) {
//                return head;
//            }
//            ListNode odd =head;
//            ListNode evenHead =odd.next;
//            ListNode even = odd.next;
//            while(odd!=null&&odd.next!=null&&even.next!=null&&even!=null) {
//                odd.next =even.next;
//                odd=odd.next;
//                even.next = odd.next;
//                even =even.next;
//            }
//            odd.next = evenHead;
//            return head;
//        }
//    }

//    class Solution {
//        public ListNode deleteDuplicates(ListNode head) {
//            if(head==null) {
//                return head;
//            }
//            //创建一个虚拟头结点  然后将不重复元素尾插到这个虚拟头结点上去
//            ListNode dummy = new ListNode(-1,null);
//            ListNode tmp =dummy;
//            ListNode cur = head;
//            while(cur!=null) {
//                if(cur.next!=null&&cur.val==cur.next.val) {
//                    while(cur.next!=null&&cur.val==cur.next.val) {
//                        cur=cur.next;
//                    }
//                    cur =cur.next;
//                }else {
//                    tmp.next =cur;
//                    tmp = tmp.next;
//                    cur =cur.next;
//                }
//            }
//            tmp.next=null;
//            return dummy.next;
//        }
//    }

//    class Solution {
//        public ListNode partition(ListNode head, int x) {
//            if(head==null) {
//                return head;
//            }
//            ListNode smallHead = null;
//            ListNode smallTail = null;
//            ListNode greaterHead =null;
//            ListNode greaterTail = null;
//            ListNode cur = head;
//            while(cur!=null) {
//                if(cur.val<x) {
//                    if(smallHead==null) {
//                        smallHead = cur;
//                        smallTail = cur;
//                    }else {
//                        smallTail.next =cur;
//                        smallTail =smallTail.next;
//                    }
//                }else {
//                    if(greaterHead==null) {
//                        greaterHead = cur;
//                        greaterTail = cur;
//                    }else {
//                        greaterTail.next =cur;
//                        greaterTail = greaterTail.next;
//                    }
//                }
//                cur =cur.next;
//            }
//            if(smallHead==null) {
//                return greaterHead;
//            }else {
//                smallTail.next = greaterHead;
//                if(greaterHead!=null) {
//                    greaterTail.next=null;
//                }
//            }
//            return smallHead;
//        }
//    }
//

//    public class Solution {
//        public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
//            if(headA==null||headB==null) {
//                return null;
//            }
//            //先求出两个链表的长度
//            ListNode curA =headA;
//            ListNode curB =headB;
//            int lenA =0;
//            int lenB =0;
//            while(curA!=null) {
//                ++lenA;
//                curA =curA.next;
//            }
//            while(curB!=null) {
//                ++lenB;
//                curB =curB.next;
//            }
//            int gap =lenA-lenB;
//            ListNode pl = headA;
//            ListNode ps =headB;
//            if(lenB>lenA) {
//                gap = lenB - lenA;
//                pl = headB;
//                ps = headA;
//            }
//            while(gap!=0) {
//                pl = pl.next;
//                gap--;
//            }
//            //此时pl与ps就在同一起跑线
//            while(pl!=ps&&pl!=null&&ps!=null) {
//                pl =pl.next;
//                ps =ps.next;
//            }
//            if(pl==ps&&pl!=null&&ps!=null) {
//                return pl;
//            }
//            return null;
//        }
//    }

//    class Solution {
//        public boolean isPalindrome(ListNode head) {
//            if(head==null) {
//                return false;
//            }
//            if(head.next==null) {
//                return true;
//            }
//            //先找到中间结点
//            ListNode fast =head;
//            ListNode slow =head;
//            while(fast!=null&&fast.next!=null) {
//                fast =fast.next.next;
//                slow =slow.next;
//            }
//            //然后反转链表
//            ListNode cur =slow.next;
//            while(cur!=null) {
//                ListNode curNext =cur.next;
//                cur.next=slow;
//                slow=cur;
//                cur=curNext;
//            }
//            //此时slow在末尾
//            //判断相不相等
//            while(head!=slow) {
//                if(head.val!=slow.val) {
//                    return false;
//                }
//                if(head.next==slow) {
//                    return true;
//                }
//                head=head.next;
//                slow=slow.next;
//            }
//            if(head==slow&&head.next!=null) {//相遇
//                return true;
//            }
//            return false;
//        }
//    }








}
